//使用Symbol变量来定义私有的事件回调函数

const _onMouseMove = Symbol("_onMouseMove");
class A{

    constructor(){
        this[_onMouseMove] = onMouseMove.bind(this);

    }

    //添加事件
    addEvent(){
        document.addEventListener( 'mousemove', this[_onMouseMove] , false );
    }

    //添加事件
    removeEvent(){
        document.removeEventListener( 'mousemove', this[_onMouseMove] , false );
    }

}

//事件回调函数中
function onMouseMove(event){
    console.log(this);
}

//Symbol("_onMouseMove")会产生一个唯一的值，
// 这个值是在对象创建的时候才生成的，所以，调用者没有办法在写代码时知道这个值的，
// 所以，就无法调用使用这个值命名的方法了，这样就定义了一个私有方法。